package 链表;
/*
* 给定一个链表，旋转链表，将链表每个节点向右移动 k 个位置，其中 k 是非负数。

示例 1:

输入: 1->2->3->4->5->NULL, k = 2
输出: 4->5->1->2->3->NULL
解释:
向右旋转 1 步: 5->1->2->3->4->NULL
向右旋转 2 步: 4->5->1->2->3->NULL
示例 2:

输入: 0->1->2->NULL, k = 4
输出: 2->0->1->NULL
解释:
向右旋转 1 步: 2->0->1->NULL
向右旋转 2 步: 1->2->0->NULL
向右旋转 3 步: 0->1->2->NULL
向右旋转 4 步: 2->0->1->NULL

* 总结：链表相对于数组的优势就是 改变顺序很容易  头节点的改变 数值顺序就变了
* 1-2-3  头节点是1 就是1-2-3  让3指向1  再把2变成头节点 就变成2 - 3-1
* 链表是离散型的 这是优势  他们的顺序辨认全靠地址  而不像数组都是顺序的
* */
public class 旋转链表 {
    public static void main(String[] args) {
//        if (head == null) return null;
//        ListNode prev = head;
//
        //计算链表的长度
//        int length = 1;
//        while (prev.next != null) {
//            prev = prev.next;
//            length++;
//        }
        //链表尾又指向了链表头
//        prev.next = head;

//        int n = length - k % length;
//        while (--n >= 0) {
//            prev = prev.next;
//        }
//        head = prev.next;
//        prev.next = null;
//        return head;
    }
}
